QRegExp will be/is deprecated.
*/
#include "defs.h"
-#include "garmin_tables.h" // for gt_lookup_datum_index
-#include "gbfile.h" // for gbfile, gbfclose, gbfcopyfrom, gbfseek, gbfwrite, gbfopen_be, gbftell, gbfputuint16, gbfputuint32, gbfgetuint16, gbfgetuint32, gbfread, gbfrewind, gbfgetflt
-#include "jeeps/gpsmath.h" // for GPS_Math_WGS84_To_Known_Datum_M
-#include "src/core/datetime.h" // for DateTime
-#include <QtCore/QByteArray> // for QByteArray
-#include <QtCore/QDate> // for QDate
-#include <QtCore/QDateTime> // for QDateTime
-#include <QtCore/QFile> // for QFile
-#include <QtCore/QFileInfo> // for QFileInfo
-#include <QtCore/QList> // for QList<>::iterator, QList
-#include <QtCore/QPair> // for QPair
-#include <QtCore/QRegExp> // for QRegExp
-#include <QtCore/QString> // for QString
-#include <QtCore/QTextCodec> // for QTextCodec
-#include <QtCore/QTime> // for QTime
-#include <QtCore/QVariant> // for QVariant
-#include <QtCore/QVector> // for QVector
-#include <QtCore/Qt> // for UTC, ISODate
-#include <QtCore/QtGlobal> // for qPrintable
-#include <algorithm> // for sort, min
-#include <cassert> // for assert
-#include <cctype> // for isprint, isspace
-#include <cfloat> // for DBL_EPSILON
-#include <cmath> // for fabs, modf, copysign, round, fmax
-#include <cstdint> // for int32_t, int16_t, uint16_t, uint32_t, uint8_t, INT32_MAX
-#include <cstdio> // for printf, snprintf, SEEK_SET, SEEK_CUR
-#include <cstdlib> // for labs, atoi
-#include <cstring> // for strrchr, memcmp, strchr, strlen
+#include "garmin_tables.h" // for gt_lookup_datum_index
+#include "gbfile.h" // for gbfputuint32, gbfputuint16, gbfgetuint16, gbfgetuint32, gbfile, gbfseek, gbftell, gbfclose, gbfcopyfrom, gbfwrite, gbfopen_be, gbfread, gbfrewind, gbfgetflt, gbfgetint16, gbfopen, gbfputc, gbfputflt, gbsize_t, gbfeof, gbfgetdbl, gbfputdbl, gbfile...
+#include "jeeps/gpsmath.h" // for GPS_Math_WGS84_To_Known_Datum_M
+#include "src/core/datetime.h" // for DateTime
+
+#include <QtCore/QByteArray> // for QByteArray
+#include <QtCore/QDate> // for QDate
+#include <QtCore/QDateTime> // for QDateTime
+#include <QtCore/QFile> // for QFile
+#include <QtCore/QFileInfo> // for QFileInfo
+#include <QtCore/QList> // for QList<>::iterator, QList
+#include <QtCore/QPair> // for QPair
+#include <QtCore/QRegularExpression> // for QRegularExpression
+#include <QtCore/QRegularExpressionMatch> // for QRegularExpressionMatch
+#include <QtCore/QString> // for QString
+#include <QtCore/QTextCodec> // for QTextCodec
+#include <QtCore/QTime> // for QTime
+#include <QtCore/QVariant> // for QVariant
+#include <QtCore/QVector> // for QVector
+#include <QtCore/Qt> // for UTC, ISODate
+#include <QtCore/QtGlobal> // for qSwap, qPrintable, qint64
+
+#include <algorithm> // for sort, min
+#include <cassert> // for assert
+#include <cctype> // for isprint, isspace
+#include <cfloat> // for DBL_EPSILON
+#include <cmath> // for fabs, modf, copysign, round, fmax
+#include <cstdint> // for uint32_t, int32_t, uint16_t, uint8_t, int16_t, INT32_MAX
+#include <cstdio> // for printf, SEEK_SET, snprintf, SEEK_CUR
+#include <cstdlib> // for labs, atoi
+#include <cstring> // for memcmp, strlen
#define MYNAME "exif"
if (offset_tag) {
char* time_tag = exif_read_str(offset_tag);
// string should be +HH:MM or -HH:MM
- QRegExp re("([+-])(\\d{2})(?::)(\\d{2})");
- if (re.exactMatch(time_tag)) {
+ const QRegularExpression re(R"(^([+-])(\d{2}):(\d{2})$)");
+ assert(re.isValid());
+ QRegularExpressionMatch match = re.match(time_tag);
+ if (match.hasMatch()) {
// Correct the date time by supplying the offset from UTC.
- int offset_hours = re.cap(1).append(re.cap(2)).toInt();
- int offset_mins = re.cap(1).append(re.cap(3)).toInt();
+ int offset_hours = match.captured(1).append(match.captured(2)).toInt();
+ int offset_mins = match.captured(1).append(match.captured(3)).toInt();
res.setOffsetFromUtc(((offset_hours * 60) + offset_mins) * 60);
}
}
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+#include <cmath> // for fabs
+#include <cstdlib> // for atoi
+#include <cstring> // for strstr, strncmp
+
+#include <QtCore/QChar> // for operator==, QChar
+#include <QtCore/QCharRef> // for QCharRef
+#include <QtCore/QDate> // for QDate
+#include <QtCore/QDateTime> // for QDateTime
+#include <QtCore/QList> // for QList
+#include <QtCore/QRegularExpression> // for QRegularExpression
+#include <QtCore/QString> // for QString, QString::KeepEmptyParts, QString::SectionSkipEmpty
+#include <QtCore/QStringList> // for QStringList
+#include <QtCore/QStringRef> // for QStringRef
+#include <QtCore/QTime> // for QTime
+#include <QtCore/QVector> // for QVector
+#include <QtCore/Qt> // for CaseInsensitive, UTC
+
#include "defs.h"
-#include "cet_util.h"
-#include "csv_util.h"
-#include "garmin_tables.h"
-#include <QtCore/QDebug>
-#include <cmath>
-#include <cstdio>
-#include <cstdlib>
+#include "cet_util.h" // for cet_convert_init
+#include "csv_util.h" // for human_to_dec
+#include "garmin_tables.h" // for gt_find_icon_number_from_desc, PCX, gt_find_desc_from_icon_number
+#include "gbfile.h" // for gbfprintf, gbfclose, gbfopen, gbfgetstr, gbfile
+#include "src/core/datetime.h" // for DateTime
+
static gbfile* file_in, *file_out;
static short_handle mkshort_handle;
// Find the first token in string |in| when there may be leading whitespace.
// These files have weird mixtures of spaces and tabs.
static QString FirstTokenAt(const QString& in, int index) {
- static const QRegExp sep("\\s+");
+ static const QRegularExpression sep(QRegularExpression(R"(\s+)"));
return in.mid(index, -1).section(sep, 0, 0, QString::SectionSkipEmpty);
}
read_as_degrees = 0;
int points = 0;
+ const QRegularExpression sep(QRegularExpression(R"(\s+)"));
// Each line is both |buff| as a C string and |line| as a QString.
while ((buff = gbfgetstr(file_in))) {
switch (ibuf[0]) {
case 'W': {
QStringList tokens =
- line.split(QRegExp("\\s+"), QString::KeepEmptyParts);
+ line.split(sep, QString::KeepEmptyParts);
if (tokens.size() < 6) {
fatal(MYNAME
": Unable to parse waypoint, not all required columns "
break;
case 'T': {
QStringList tokens =
- line.split(QRegExp("\\s+"), QString::KeepEmptyParts);
+ line.split(sep, QString::KeepEmptyParts);
if (tokens.size() < 6) {
fatal(MYNAME
": Unable to parse trackpoint, not all required columns "
*/
-#include <cassert> // for assert
-#include <cctype> // for isdigit, tolower
-#include <cmath> // for fabs, pow
-#include <cstdio> // for snprintf, sscanf
-#include <cstdlib> // for atof, atoi, strtod, atol
-#include <cstring> // for strlen, strncmp, strcmp, strncpy, memset
-#include <ctime> // for gmtime, localtime, mktime, strftime
-
-#include <QtCore/QByteArray> // for QByteArray
-#include <QtCore/QChar> // for QChar
-#include <QtCore/QCharRef> // for QCharRef
-#include <QtCore/QDate> // for QDate
-#include <QtCore/QDateTime> // for QDateTime
-#include <QtCore/QHash> // for QHash
-#include <QtCore/QIODevice> // for operator|, QIODevice::ReadOnly, QIODevice::Text, QIODevice::WriteOnly
-#include <QtCore/QList> // for QList
-#include <QtCore/QRegExp> // for QRegExp
-#include <QtCore/QString> // for QString, operator+, operator==, QByteArray::append
-#include <QtCore/QStringList> // for QStringList
-#include <QtCore/QTextStream> // for QTextStream
-#include <QtCore/QTime> // for QTime
-#include <QtCore/QtGlobal> // for qAsConst, QAddConst<>::Type, qPrintable
+#include <cassert> // for assert
+#include <cctype> // for isdigit, tolower
+#include <cmath> // for fabs, pow
+#include <cstdio> // for snprintf, sscanf
+#include <cstdlib> // for atof, atoi, strtod
+#include <cstring> // for strlen, strncmp, strcmp, memset
+#include <ctime> // for gmtime, localtime, time_t, mktime, strftime
+
+#include <QtCore/QByteArray> // for QByteArray
+#include <QtCore/QChar> // for QChar
+#include <QtCore/QDate> // for QDate
+#include <QtCore/QDateTime> // for QDateTime
+#include <QtCore/QDebug> // for QDebug
+#include <QtCore/QHash> // for QHash
+#include <QtCore/QIODevice> // for QIODevice, operator|, QIODevice::ReadOnly, QIODevice::Text, QIODevice::WriteOnly
+#include <QtCore/QList> // for QList
+#include <QtCore/QRegularExpression> // for QRegularExpression
+#include <QtCore/QString> // for QString, operator+, operator==
+#include <QtCore/QStringList> // for QStringList
+#include <QtCore/QTextStream> // for QTextStream
+#include <QtCore/QtGlobal> // for qAsConst, qPrintable
#include "defs.h"
-#include "csv_util.h" // for csv_stringtrim, dec_to_human, csv_stringclean, human_to_dec, ddmmdir_to_degrees, dec_to_intdeg, decdir_to_dec, intdeg_to_dec, csv_linesplit
-#include "garmin_fs.h" // for garmin_fs_t, garmin_fs_flags_t, GMSD_FIND, GMSD_GET, GMSD_SET, garmin_fs_alloc
-#include "gbfile.h" // for gbfgetstr, gbfclose, gbfopen, gbfile
-#include "grtcirc.h" // for RAD, gcdist, radtomiles
-#include "jeeps/gpsmath.h" // for GPS_Math_WGS84_To_UTM_EN, GPS_Lookup_Datum_Index, GPS_Math_Known_Datum_To_WGS84_M, GPS_Math_UTM_EN_To_Known_Datum, GPS_Math_WGS84_To_Known_Datum_M, GPS_Math_WGS84_To_UKOSMap_M
-#include "jeeps/gpsport.h" // for int32
-#include "session.h" // for session_t
-#include "src/core/datetime.h" // for DateTime
-#include "src/core/logging.h" // for Warning, Fatal
-#include "src/core/optional.h" // for optional
-#include "src/core/textstream.h"
-#include "strptime.h" // for strptime
+#include "csv_util.h" // for csv_stringtrim, dec_to_human, csv_stringclean, human_to_dec, ddmmdir_to_degrees, dec_to_intdeg, decdir_to_dec, intdeg_to_dec, csv_linesplit
+#include "formspec.h" // for FormatSpecificDataList
+#include "garmin_fs.h" // for garmin_fs_t, garmin_fs_alloc
+#include "gbfile.h" // for gbfgetstr, gbfclose, gbfopen, gbfile
+#include "grtcirc.h" // for RAD, gcdist, radtomiles
+#include "jeeps/gpsmath.h" // for GPS_Math_WGS84_To_UTM_EN, GPS_Lookup_Datum_Index, GPS_Math_Known_Datum_To_WGS84_M, GPS_Math_UTM_EN_To_Known_Datum, GPS_Math_WGS84_To_Known_Datum_M, GPS_Math_WGS84_To_UKOSMap_M
+#include "jeeps/gpsport.h" // for int32
+#include "session.h" // for session_t
+#include "src/core/datetime.h" // for DateTime
+#include "src/core/logging.h" // for FatalMsg
+#include "src/core/optional.h" // for optional
+#include "src/core/textstream.h" // for TextStream
+#include "strptime.h" // for strptime
#include "xcsv.h"
XT_YYYYMMDD_TIME
};
-#include "xcsv_tokens.gperf" // for Perfect_Hash, xt_mapping
+#include "xcsv_tokens.gperf" // for Perfect_Hash, xt_mapping
/* a table of config file constants mapped to chars */
const XcsvStyle::char_map_t XcsvStyle::xcsv_char_table[] = {
}
// Separate op and tokens.
- int sep = line.indexOf(QRegExp("\\s+"));
+ int sep = line.indexOf(QRegularExpression(R"(\s+)"));
// the first token is the operation, e.g. "IFIELD"
QString op = line.mid(0, sep).trimmed().toUpper();